<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 如何判断一个数据是否是数组?
    // 第一想法 使用typeof => typeof 数组 返回 "object",(数组是一个特殊的对象)   => 不行
    // (1)  instanceof   判断某个数据是否是某个构造函数创建的(此说法不完全,后续补充)
    // (2) 使用构造函数Array的方法(函数是一个特殊的对象,存在自己的属性和方法),构造函数自己用
    //     Array.isArray()  传入一个数据判断是否是数组, 是=>true  不是=>false 


    // var num = 100;
    // console.log(typeof num); // "number"

    // var arr = [1,2,3]; // new Array(1,2,3);
    // console.log(typeof arr); // 'object'

    // var obj = {a:1,b:2}; // new Object({})
    // console.log(typeof obj);// 'object'



    // instanceof   判断某个数据是否是某个构造函数创建的(此说法不完全,后续补充)

    // 实例化: 通过构造函数创建对象的过程叫做实例化, 被创建的对象叫做实例(实例化对象)

    var arr = [1,2,3]; // new Array(1,2,3);
    var obj = {a:1,b:2}; // new Object({})
    
    // console.log(arr instanceof Array); // true 判断arr是否是构造函数Array创建的实例化对象
    // console.log( obj instanceof Array); // false 判断obj是否是构造函数Array创建的实例化对象
    // console.log( obj instanceof Object); // true 判断obj是否是构造函数Object创建的实例化对象

    // Array.isArray()
    console.log(Array.isArray(arr)); // true
    console.log(Array.isArray(obj)); // false
    console.log(Array.isArray(100)); // false
    console.log(Array.isArray("hello")); // false
    console.log(Array.isArray(true)); // false
    console.log(Array.isArray(null)); // false
    console.log(Array.isArray(undefined)); // false


</script>
</html>